home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disc 33 / Commodore_Disc_33_19xx_-_de.d64 / super racer (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  7KB  |  248 lines

  1. 0 dim lv(455),zeit$(100),ns$(100):sr=0
  2. 1 print"":gosub11000:data0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  3. 2 data0,0,0,0,0,0,0,0,0,127,30,0,134,184,3,255
  4. 3 data240,15,255,224,31,255,240,63,255,248,14,1,192,4,0,128
  5. 4 data0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220
  6. 5 fori=704to767:readm:pokei,m:nexti
  7. 6 v=53248:pokev+23,0
  8. 7 pokev+29,1:pokev+39,5
  9. 8 pokev+0,156:pokev+1,85
  10. 9 poke2040,11:poke53280,0:poke53281,0
  11. 10 if test=1 then 38
  12. 12 pokev+21,1:print "[147]   [169]super racer[223][146]   "
  13. 15 print "[155]   von nicolas engel"
  14. 20 print "             und
  15. 25 [153] "       frank arensmeier
  16. 26 print "[159] hi-score : ";ns$(1);" [146]"
  17. 27 print " zeit    : ";
  18. 28 print left$(zeit$(1),2);":";mid$(zeit$(1),3,2);":";right$(zeit$(1),2);" [146]"
  19. 29 print"[154][169] space = spiel  [223][146]"
  20. 30 print"  f1 = editor     [146]"
  21. 31 print"[223] f7 = hi-scores [146][169]"
  22. 32 get t$:if t$="" then 32
  23. 33 if t$=" " then38
  24. 34 if t$="[133]" then15000
  25. 35 if t$="[136]" then16000
  26. 36 goto 32
  27. 38 rem --- data rennwagen ---
  28. 39 poke v+21,0:poke v+1,0
  29. 40 data0,0,0,0,0,0,0,36,0,0,36,0,28,36,56,31
  30. 41 data90,248,28,219,56,0,102,0,0,126,0,1,255,128,0,255
  31. 42 data0,0,102,0,0,66,0,28,195,56,31,255,248,28,255,56
  32. 43 data0,126,0,7,255,224,7,255,224,0,126,0,0,60,0,220
  33. 50 fori=704to767:readm:pokei,m:nexti
  34. 55 pokev+29,1:pokev+39,0
  35. 65 poke2041,13:poke53281,5:pokev+23,1
  36. 67 if test<>1 then gosub 10000
  37. 69 rem --- motor geraeusch ---
  38. 70 si=54272:x=155
  39. 71 fori=1to24:pokesi+i,0:nexti
  40. 72 pokesi+24,15:pokesi+6,240:pokesi,x:pokesi+5,8:pokesi+23,240:pokesi+4,129
  41. 75 poke v+21,1:print"[145]";
  42. 76 fori=1to24:print spc(14);st$:nexti
  43. 80 for i=1 to 55:for t=1 to 60:nextt
  44. 85 poke v+1,i:next i:pokesi,100:q=0
  45. 90 q=q+1:print"[144][188]  start  [190]"
  46. 95 fori=1to200:nexti
  47. 100 print"[144][188]         [190]"
  48. 105 fori=1to200:nexti
  49. 106 ti$="000000"
  50. 110 ifq<>6thengoto90
  51. 115 print "";spc(14+lv(b));st$:x=156:so=150:w=150:e=peek(v+31):k=1
  52. 120 p1=peek(56320)
  53. 125 b=b+1:r=r+1
  54. 130 if (p1 and 8)=0 then x=x+4
  55. 135 if (p1 and 4)=0 then x=x-4
  56. 140 if (p1 and 1)=0 then w=w+5:so=so-5
  57. 145 if (p1 and 2)=0 then w=w-5:so=so+5
  58. 147 if peek(v+31)<>0 thengosub300:end
  59. 150 if x=255 then x=x-1
  60. 151 if w=255 then w=w-5
  61. 152 if w=0 then w=w+5
  62. 153 for s=100 to so:nexts
  63. 154 if r=25 then print spc(33);"[144]";k;"km[145]":r=1:k=k+1
  64. 155 poke v+0,x
  65. 156 poke si,w
  66. 160 if b=a then goto 335
  67. 165 print spc(14+lv(b));st$
  68. 170 goto 120
  69. 299 rem --- crash geraeusch ---
  70. 300 si=54272
  71. 305 fori=1to24:pokesi+i,0:next
  72. 310 pokesi+24,2:pokesi+6,255:pokesi+4,129:pokesi+13,255:pokesi+11,129
  73. 315 pokesi+1,0:pokesi+5,0:pokesi+24,15:pokesi+1,1:pokesi+5,11:pokesi+6,0
  74. 317 poke v+21,0
  75. 320 print"[144]              [206][194][183][194][194][183][199][207][183][160][180] [170]
  76. 321 [153]"             (NULL) -lenexppeeklenchr$sgn  (NULL)andsqr
  77. 322 print"             [205] [194] [194][194] [199][183][183][180][180] [170]
  78. 323 [153]"              (NULL)peek peekpeek chr$andandsgnsgn +
  79. 325 fori=1 to 200
  80. 326 poke 53281,i
  81. 327 nexti:poke 53281,5:forz=1to1000:nextz
  82. 328 if test=1 then goto 17020
  83. 330 gosub 15395:restore:b=0:sr=0:goto1
  84. 331 if ta<1 then ta=1:
  85. 335 fori=1to14:print spc(14+lv(b-1));st$:nexti:zt$=ti$:sr=sr+1
  86. 336 print spc(13+lv(b));"[144]zeit:";
  87. 337 print left$(zt$,2);":";mid$(zt$,3,2);":";right$(zt$,2)
  88. 338 if val(zt$)<val(zeit$(sr)) then c=1
  89. 400 print spc(15+lv(b));"[144][175][175] [175] [175][175] [175]
  90. 405 [153] [166]14[170]lv(b));"  (NULL) peek (NULL)  left$
  91. 410 print spc(14+lv(b));" [206]  [194] [180]  [200]
  92. 415 [153] [166]14[170]lv(b));" usrusr usr usrusr usrusrusr
  93. 416 for i=55 to 255
  94. 417 for t=100 to 70:next t:poke v+1,i
  95. 418 next i
  96. 420 poke si,0
  97. 500 fori=1 to 200
  98. 505 poke 53281,i
  99. 510 nexti:poke 53281,5
  100. 515 sc=sc+(l*100):za=za+1
  101. 520 if l=6 then 10090
  102. 525 if ta<1 then ta=1:tr=tr-1
  103. 530 if ta<1 then ta=1
  104. 535 si=54272:s2=54279:s3=54286
  105. 536 pokesi+4,0:pokes2+4,0:pokes3+4,0
  106. 537 pokesi+5,16*0+2:pokesi+6,16*15+12
  107. 538 pokes2+5,16*0+2:pokes2+6,16*15+12
  108. 539 pokes3+5,16*0+2:pokes3+6,16*15+12
  109. 540 pokesi+23,0:pokesi+24,15:pokesi,38:pokesi+1,15:pokes2,154:pokes2+1,21:pokes3,177
  110. 541 pokes3+1,25:pokesi+4,33:fori=0to400:next:pokes2+4,33:fori=0to400:next:pokes3+4,33
  111. 542 fori=0to500:next:pokes1+4,32:pokes2+4,32:pokes3+4,32:pokesi+22,4
  112. 543 pokesi+21,226
  113. 544 pokesi+4,0
  114. 550 forz=1to1500:nextz:poke 53281,0
  115. 551 if test=1 then 17020
  116. 552 if c<>1 then goto 575
  117. 555 if c=1 then print "[147]";spc(12);"neuer hi-score !!":zeit$(sr)=zt$
  118. 560 print "bitte geben sie ihren namen ein !":poke 19,64
  119. 565 input "-----[157][157][157][157][157]";ns$(sr):poke 19,0
  120. 570 gosub 12000:poke53281,5:poke v+0,156:c=0
  121. 575 if sr<>lv then gosub 10000:b=0:q=0:pokev+0,156:poke53281,5:goto69
  122. 580 sr=0:poke53281,0:print "[147]ende der strecken !"
  123. 585 foro=1to1500:restore:goto1
  124. 10000 rem --- lev-loader ---
  125. 10001 print "[147]":na$="lev"+str$(sr+1)
  126. 10010 open 2,8,2,na$+",s,r"
  127. 10017 input#2,a
  128. 10030 for i1=1 to a
  129. 10035 input#2,lv(i1)
  130. 10045 nexti1
  131. 10050 close2
  132. 10055 return
  133. 11000 rem --- hi-score-loader ---
  134. 11010 open 2,8,2,"hi-score,s,r"
  135. 11015 input#2,lv
  136. 11017 for i=1 to lv
  137. 11020 input#2,zeit$(i)
  138. 11021 input#2,ns$(i)
  139. 11022 next i
  140. 11023 input#2,st$
  141. 11025 close2: return
  142. 12000 rem --- hi-score-saver ---
  143. 12010 open 2,8,2,"@:hi-score,s,w"
  144. 12015 print#2,lv
  145. 12017 fori=1to lv
  146. 12020 print#2,zeit$(i)
  147. 12021 print#2,ns$(i)
  148. 12022 next i
  149. 12023 print#2,st$
  150. 12025 close2:return
  151. 15000 rem --- editor ---
  152. 15005 pokev+21,0:print""
  153. 15010 print "[147]* f1 *  strecke editieren"
  154. 15015 print "* f3 *  strecke speichern"
  155. 15017 print "* f5 *  rennstrecke ansehen"
  156. 15019 print "* f6 *  rennstrecke ausprobieren"
  157. 15020 print "* f7 *  strecke loeschen"
  158. 15022 print "* f8 *  zurueck"
  159. 15025 get t$:if t$="" then 15025
  160. 15030 if t$="[133]" then 15100
  161. 15035 if t$="[134]" then 15150
  162. 15037 if t$="[135]" then 15220
  163. 15039 if t$="[139]" then 17000
  164. 15040 if t$="[136]" then 15250
  165. 15042 if t$="[140]" then restore:goto1
  166. 15050 goto 15025
  167. 15100 print "[147]  e=ende";
  168. 15101 print "[145]";spc(6);st$;:sx=0
  169. 15102 if sl=0 then 15105
  170. 15103 print:for o=1tosl:print spc(14+lv(o));st$:nexto:sx=lv(o)
  171. 15105 p2=peek(56320)
  172. 15107 get s$:if s$="e" then print"[147]":foro=0to22:lv(o+sl)=sx:nexto:goto15010
  173. 15110 if(p2 and 8)=0 then sx=sx+1
  174. 15115 if(p2 and 4)=0 then sx=sx-1
  175. 15120 if(p2 and 16)=0 then sl=sl+1:print "";
  176. 15125 if sx=-13 then sx=-12
  177. 15126 if sl=423 then print"[147]strecke komplett !":foro=0to22:lv(o+sl)=sx:nexto
  178. 15127 if sl=423 then lv(sl)=sx:goto15010
  179. 15128 if sx=10 then sx=sx-1
  180. 15129 if(p2 and 16)=0 then 15140
  181. 15130 print "[145]";:for i=1 to 39:print " ";:nexti
  182. 15132 print chr$(13);"[145]";
  183. 15135 print spc(14+sx);st$:goto 15105
  184. 15138 goto 15105
  185. 15140 lv(sl)=sx:print"[145]";:foro=1to300:nexto
  186. 15145 f=0:poke211,34:sys58640:print"[145]";423-sl:poke211,40:sys58640
  187. 15147 print "";:goto 15135
  188. 15150 if sl=0 then print"[147]keine bahn vorhanden !":foro=1to1000:nexto:goto 15010
  189. 15155 print "[147]** speichern **"
  190. 15160 lv=lv+1:na$="lev"+str$(lv):gosub 12000
  191. 15165 sl=sl+22:open 2,8,2,na$+",s,w"
  192. 15170 print#2,sl
  193. 15175 fori1=1tosl
  194. 15180 print#2,lv(i1)
  195. 15185 nexti1
  196. 15190 close2:print spc(9);"level gespeichert !":for o=1to1200:nexto:goto 15010
  197. 15220 rem --- anzeigen ---
  198. 15225 if sl=0 then print"[147]keine bahn vorhanden !":foro=1to1000:nexto:goto 15010
  199. 15230 print"[147]":for o=1 to sl:get e$:if e$="e" then goto 15237
  200. 15232 print spc(14+lv(o));st$
  201. 15233 for p=1 to 100:next p
  202. 15235 next o
  203. 15237 print "";spc(16+lv(o));"e n d e"
  204. 15240 get e$:if e$="" then 15240
  205. 15245 print "[147]":goto 15010
  206. 15250 rem --- loeschen ---
  207. 15255 if sl=0 then print"[147]keine strecke im speicher !"
  208. 15257 if sl=0 then foro=1to1000:nexto:goto15010
  209. 15260 for o=1tosl
  210. 15265 lv(o)=0:nexto:foro=1to600:nexto:print "[147]strecke geloescht !"
  211. 15270 foro=1to1000:nexto:sl=0:goto15010
  212. 15395 rem --- game-over ---
  213. 15400 data0,0,0,0,0,0,121,199,30,130,42,160,130,42,176,154
  214. 15401 data168,160,138,40,160,114,40,158,0,0,0,0,0,0,0,0
  215. 15402 data0,114,19,206,138,20,17,138,22,30,137,36,17,137,36,17
  216. 15403 data112,195,209,0,0,0,0,0,0,0,0,0,0,0,0,220
  217. 15410 fori=704to767:readm:pokei,m:nexti
  218. 15415 v=53248:pokev+23,0
  219. 15420 pokev+21,1:pokev+39,1:pokev+29,1
  220. 15425 pokev+0,156:pokev+1,85
  221. 15426 print "[147]":poke 53280,0:poke 53281,0
  222. 15427 print "":for i=1 to 3
  223. 15428 print "         [146]":next i:print"[163][163][163][163][163][163][163][163][163]"
  224. 15430 for i=1 to 3
  225. 15435 poke v+21,0
  226. 15440 for i2=1 to 350:next i2
  227. 15445 poke v+21,1
  228. 15447 for i2=1 to 350:next i2
  229. 15450 next i:return
  230. 16000 print "[147]":poke v+21,0
  231. 16005 print "level        zeit         name"
  232. 16010 print "----------------------------------------"
  233. 16015 for o=1 to lv
  234. 16020 print "";o;:poke211,15:sys58640
  235. 16025 print left$(zeit$(o),2);":";mid$(zeit$(o),3,2);":";right$(zeit$(o),2);
  236. 16030 poke 211,30:sys58640:print ns$(o)
  237. 16035 next o:print""
  238. 16040 print spc(14);">> taste <<"
  239. 16045 get e$:if e$="" then 16045
  240. 16050 print "[147]":pokev+21,1:goto 10
  241. 17000 rem --- ausprobieren ---
  242. 17005 if sl=0 then print"[147]keine strecke im speicher !"
  243. 17010 if sl=0 then foro=1to1000:nexto:goto15010
  244. 17015 print"[147]":a=sl+22:test=1
  245. 17016 for o=1to22:lv(o+sl)=lv(sl):nexto
  246. 17018 restore:goto 5
  247. 17020 poke53281,0:test=0:a=0:b=0:goto 15000
  248.